package com.ljw.miniweb.login.validator;


import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;

import com.ljw.miniweb.login.bean.LoginBean;

/**
name    : LoginValidator
content : 접속시 Validator
date    : 2011.02.16
author  : ljw

@author ljw(jwlee1728@gmail.com)
@version 1.0

* @see class_name : "See also"라는 항목을 만들어 해당 클래스와 연결해준다.
* @see class_name#method_name : "See also"라는 항목을 만들어 특정 메소드와 연결해준다.
* @param name description : 특정 메소드가 취하는 파라메터를 기술할 때 사용된다.
* @return description : 특정 메소드의 리턴값을 기술할 때 사용된다.
* @exception class_name : 특정 메소드가 발생시킬 수 있는 에외상황을 기술할 때 사용된다.
*/

public class LoginValidator implements Validator{
	
	protected final Log logger = LogFactory.getLog(this.getClass());
	
	@Override
	//빈(LoginBean)을 검증할수 있는 type 인지 검사한다.
	public boolean supports(Class clazz) {
		return LoginBean.class.isAssignableFrom(clazz);
	}

	@Override
	//실제 값에 대해 검증
	public void validate(Object command, Errors errors) {
		
		LoginBean loginBean = (LoginBean)command;
		
		logger.info("loginBean.getUser_id().getLength() " + loginBean.getUser_id().length() ); 
		
		
		if(loginBean.getUser_id().length() < 5){
			
			errors.reject("login.user_id");
			logger.info("errors.reject " );
		}
		
	}

		
}
